# 
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Netscape Portable Runtime (NSPR).
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998-2000
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****


MOD_DEPTH	= ../../../..
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@

include $(MOD_DEPTH)/config/autoconf.mk

include $(topsrcdir)/config/config.mk

CSRCS =          \
	unix.c    \
	unix_errors.c    \
	uxproces.c \
	uxrng.c \
	uxshm.c \
	uxwrap.c \
	$(NULL)

ifneq ($(USE_PTHREADS),1)
CSRCS += uxpoll.c
endif

ifeq ($(PTHREADS_USER),1)
CSRCS += pthreads_user.c
endif

CSRCS += $(PR_MD_CSRCS)
ASFILES += $(PR_MD_ASFILES)

TARGETS = $(OBJS)

ifeq ($(OS_ARCH),SunOS)
	ifneq ($(OS_RELEASE),4.1.3_U1)
		ifeq ($(OS_TEST),sun4u)
		ifdef USE_64
			ULTRASPARC_ASFILES = os_SunOS_sparcv9.s
			ULTRASPARC_ASOBJS = $(addprefix $(OBJDIR)/,$(ULTRASPARC_ASFILES:.s=.$(OBJ_SUFFIX)))
		else
			LIBRARY_NAME = $(ULTRASPARC_LIBRARY)
			LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
			ULTRASPARC_ASFILES = os_SunOS_ultrasparc.s
			ULTRASPARC_ASOBJS = $(addprefix $(OBJDIR)/,$(ULTRASPARC_ASFILES:.s=.$(OBJ_SUFFIX)))
			TARGETS		+= $(ULTRASPARC_ASOBJS) $(SHARED_LIBRARY)
			RELEASE_LIBS = $(SHARED_LIBRARY)
			RELEASE_LIBS_DEST = $(RELEASE_LIB_DIR)/cpu/sparcv8plus
			lib_subdir = cpu/sparcv8plus
		endif
		endif
	endif
endif

INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private

DEFINES	+= -D_NSPR_BUILD_

include $(topsrcdir)/config/rules.mk

export:: $(TARGETS)

ifeq ($(OS_ARCH),SunOS)
ifneq ($(OS_RELEASE),4.1.3_U1)
ifeq ($(OS_TEST),sun4u)

ifdef USE_64
$(ULTRASPARC_ASOBJS): $(ULTRASPARC_ASFILES)
	/usr/ccs/bin/as -o $@ -K PIC -P -D_ASM -D__STDC__=0 -xarch=v9 $<
else
$(SHARED_LIBRARY): $(ULTRASPARC_ASOBJS)
	$(LD) -G -z text -z endfiltee -o $@ $(ULTRASPARC_ASOBJS)
	$(INSTALL) -m 444 $@ $(dist_libdir)/cpu/sparcv8plus
	$(INSTALL) -m 444 $@ $(dist_bindir)/cpu/sparcv8plus
#
# The -f $(ORIGIN)/... linker flag uses the real file, after symbolic links
# are resolved, as the origin.  If NSDISTMODE is not "copy", libnspr4.so
# will be installed as a symbolic link in $(dist_libdir), pointing to the
# real libnspr4.so file in pr/src.  Therefore we need to install an
# additional copy of libnspr_flt4.so in pr/src/cpu/sparcv8plus.
#
ifneq ($(NSDISTMODE),copy)
	$(INSTALL) -m 444 $@ ../../cpu/sparcv8plus
endif

ifneq ($(NSDISTMODE),copy)
clobber realclean clobber_all distclean::
	rm -rf ../../cpu
endif

$(ULTRASPARC_ASOBJS): $(ULTRASPARC_ASFILES)
	/usr/ccs/bin/as -o $@ -K PIC -P -D_ASM -D__STDC__=0 -xarch=v8plus $<

clean::
	rm -rf $(ULTRASPARC_ASOBJS)
endif

endif
endif
endif
